home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 008a / pgp10.zip / PGPGUIDE.LST < prev    next >
File List  |  1991-06-05  |  85KB  |  1,713 lines

  1.  
  2.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 1
  3.  
  4.  
  5.                           Phil's Pretty Good Software
  6.       
  7.                                     presents
  8.       
  9.                                       ===
  10.                                       PGP
  11.                                       ===
  12.       
  13.                               Pretty Good Privacy
  14.                    RSA Public Key Cryptography for the Masses
  15.       
  16.                              Version 1.0 - 5 Jun 91
  17.       
  18.                                 PGP User's Guide
  19.       
  20.                       (c) Copyright 1990 Philip Zimmermann
  21.             Software and Documentation Written by Philip Zimmermann
  22.       
  23.       
  24.       
  25.       
  26.       
  27.      For information on PGP licensing, distribution, copyrights, patents,
  28.      trademarks, liability limitations, and export controls, see the "Legal
  29.      Issues" section later in this document.
  30.       
  31.       
  32.  
  33.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 2
  34.  
  35.  
  36.       
  37.      Contents
  38.      ========
  39.       
  40.      Quick Overview
  41.        How it Works
  42.      Installing PGP
  43.      How to Use PGP
  44.        To See a Usage Summary
  45.        Encrypting a Message
  46.        Signing a Message
  47.        Signing and then Encrypting
  48.        Using Just Conventional Encryption
  49.        Decrypting and Checking Signatures
  50.        Managing Keys
  51.          RSA Key Generation
  52.          Adding a Key to Your Key Ring
  53.          Removing a Key from Your Key Ring
  54.          Viewing the Contents of Your Key Ring
  55.          Signed Public Key Certificates
  56.      Advanced Topics
  57.        Separating Signatures from Messages
  58.        Sending Ciphertext Through E-mail Channels: Uuencode Format
  59.        Leaving No Traces of Plaintext on the Disk
  60.        Environmental Variable for Path Name
  61.        A Peek Under the Hood
  62.          Random Numbers
  63.          PGP's Conventional Encryption Algorithm
  64.          Data Compression
  65.      Vulnerabilities
  66.        Compromised Pass Phrase and Secret Key
  67.        Public Key Tampering
  68.        "Not Quite Deleted" Files
  69.        Viruses and Trojan Horses
  70.        Physical Security Breach
  71.        Tempest Attacks
  72.        Traffic Analysis
  73.        Cryptanalysis
  74.      Trusting Snake Oil
  75.      Why Do You Need PGP?
  76.      PGP Quick Reference
  77.      Legal Issues
  78.        Trademarks, Copyrights, and Warranties
  79.        Patent Rights on the Algorithms
  80.        Licensing and Distribution
  81.        Export Controls
  82.      Acknowledgements
  83.      Recommended Readings
  84.      About the Author
  85.       
  86.       
  87.  
  88.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 3
  89.  
  90.  
  91.       
  92.      Quick Overview
  93.      ==============
  94.       
  95.      Pretty Good(tm) Privacy (PGP), from Phil's Pretty Good Software, is a
  96.      high security cryptographic software application for MSDOS.  PGP
  97.      allows people to exchange files or messages with privacy,
  98.      authentication, and convenience.  Privacy means only those intended
  99.      to receive a message can read it.  Authentication means messages that
  100.      appear to be from a particular person can only have originated from
  101.      that person.  Convenience means that privacy and authentication are
  102.      provided without the hassles of managing keys associated with
  103.      conventional cryptographic software.  No secure channels are needed
  104.      to exchange keys between users, which makes PGP much easier to use. 
  105.      This is because PGP is based on an powerful new technology called 
  106.      "public key" cryptography.  
  107.       
  108.      PGP combines the convenience of the Rivest-Shamir-Adleman (RSA)
  109.      public key cryptosystem with the speed of fast conventional
  110.      cryptographic algorithms, fast message digest algorithms, data
  111.      compression, and sophisticated key management.  And PGP performs the
  112.      RSA functions faster than most other software implementations.  PGP is
  113.      RSA public key cryptography for the masses.
  114.       
  115.      PGP does not provide any built-in modem communications capability. 
  116.      You must use a separate product such as TELIX or PROCOMM for that.
  117.       
  118.      This document only explains how to use PGP without explaining the
  119.      underlying technology details and data structures and cryptographic
  120.      algorithms.  It would help if you were already familiar with the
  121.      concept of cryptography in general and RSA public key cryptography in
  122.      particular.  Nonetheless, here are a few introductory remarks about
  123.      public key cryptography.
  124.       
  125.       
  126.      How it Works
  127.      ------------
  128.       
  129.      In conventional cryptosystems, such as the Federal Data Encryption
  130.      Standard (DES), a single key is used for both encryption and
  131.      decryption.  This means that keys must be initially transmitted
  132.      via secure channels so that both parties can know them before
  133.      encrypted messages can be sent over insecure channels.  This may be
  134.      inconvenient.  If you have a secure channel for exchanging keys, then
  135.      why do you need cryptography in the first place?
  136.       
  137.      In public key cryptosystems, everyone has two related complimentary
  138.      keys, a publicly revealed key and a secret key.  Each key unlocks the
  139.      code that the other key makes.  Knowing the public key does not help
  140.      you deduce the corresponding secret key.  The public key can be
  141.      published and widely disseminated across a communications network.
  142.      This protocol provides privacy without the need for the same kind of
  143.      secure channels that a conventional cryptosystem requires.
  144.       
  145.      Anyone can use a recipient's public key to encrypt a message to that
  146.      person, and that recipient uses her own corresponding secret key to
  147.  
  148.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 4
  149.  
  150.  
  151.      decrypt that message.  No one but the recipient can decrypt it,
  152.      because no one else has access to that secret key.  Not even the
  153.      person who encrypted the message can decrypt it.  
  154.       
  155.      Message authentication is also provided.  The sender's own secret key
  156.      can be used to encrypt a message, thereby "signing" it.  This creates
  157.      a digital signature of a message, which the recipient (or anyone
  158.      else) can check by using the sender's public key to decrypt it.  This
  159.      proves that the sender was the true origin of the message, and that
  160.      the message has not been subsequently altered by anyone else, because
  161.      the sender alone possesses the secret key that made that signature. 
  162.      Forgery of a signed message is infeasible, and the sender cannot
  163.      later disavow his signature. 
  164.       
  165.      These two processes can be combined to provide both privacy and
  166.      authentication by first signing a message with your own secret key,
  167.      then encrypting the signed message with the recipient's public key. 
  168.      The recipient reverses these steps by first decrypting the message
  169.      with her own secret key, then checking the enclosed signature with
  170.      your public key.  These steps are done automatically by the
  171.      recipient's software.
  172.       
  173.      Because the RSA public key encryption algorithm is so slow,
  174.      encryption is better accomplished by using a high-quality fast
  175.      conventional encryption algorithm to encipher the message.  This
  176.      original unenciphered message is called "plaintext".  In a process
  177.      invisible to the user, a temporary random key, created just for this
  178.      one "session", is used to conventionally encipher the plaintext
  179.      file.  Then the recipient's RSA public key is used to encipher this
  180.      temporary random conventional key.  This RSA-enciphered conventional
  181.      "session" key is sent along with the enciphered text (called
  182.      "ciphertext") to the recipient.  The recipient uses her own RSA
  183.      secret key to recover this temporary session key, and then uses that
  184.      key to run the fast conventional algorithm to decipher the large
  185.      ciphertext message.
  186.       
  187.      RSA keys are kept in "key certificates" that include the key owner's
  188.      user ID (which is that person's name), a timestamp of when the key
  189.      pair was generated, and the actual key material.  A key file, or "key
  190.      ring" contains one or more of these key certificates.  Public key
  191.      certificates contain the public key material, while secret key
  192.      certificates contain the secret key material.  Public key rings
  193.      contain only public keys, and secret key rings contain just secret
  194.      keys.  Secret keys are cryptographically protected by their own
  195.      password.
  196.       
  197.      The keys are also internally referenced by a "key ID", which is an 
  198.      "abbreviation" of the public key (the least significant 64 bits of 
  199.      the large public RSA key).  When this key ID is displayed, only the
  200.      lower 24 bits are shown for further brevity.  While many keys may
  201.      share the same user ID, for all practical purposes no two keys share
  202.      the same key ID.  
  203.       
  204.      PGP uses message digests to form signatures.  A message digest is a
  205.      128-bit cryptographically strong one-way hash function of the
  206.      message.  It is somewhat analogous to a "checksum" or CRC error
  207.  
  208.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 5
  209.  
  210.  
  211.      checking code, in that it compactly "represents" the message and is
  212.      used to detect changes in the message.  Unlike a CRC, however, it is
  213.      computationally infeasible for an attacker to devise a substitute
  214.      message that would produce an identical message digest.  The message
  215.      digest gets encrypted by the RSA secret key to form a signature.  The
  216.      message digest algorithm used here is the MD4 Message Digest
  217.      Algorithm, placed in the public domain by RSA Data Security, Inc.
  218.       
  219.      Documents are signed by prefixing them with signature certificates,
  220.      which contain the key ID of the key that was used to sign it, an
  221.      RSA-signed message digest of the document, and a timestamp of when the 
  222.      signature was made.  The key ID is used by the receiver to look up
  223.      the sender's public key to check the signature.  The receiver's
  224.      software automatically looks up the sender's public key and user ID in
  225.      the receiver's public key ring.
  226.       
  227.      Encrypted files are prefixed by the key ID of the public key used to
  228.      encrypt them.  The receiver uses this key ID message prefix to look
  229.      up the secret key needed to decrypt the message.  The receiver's 
  230.      software automatically looks up the necessary secret decryption key 
  231.      in the receiver's secret key ring.
  232.       
  233.      These two types of key rings are the principal method of storing and
  234.      managing public and secret keys.  Rather than keep individual keys in
  235.      separate key files, they are collected in key rings to facilitate the
  236.      automatic lookup of keys either by key ID or by user ID.  Each user
  237.      keeps his own pair of key rings.  An individual public key is
  238.      temporarily kept in a separate file long enough to send to your
  239.      friend who will then add it to her key ring.  An individual key file
  240.      is no different from a key ring that contains only one key.
  241.       
  242.       
  243.  
  244.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 6
  245.  
  246.  
  247.       
  248.      Installing PGP
  249.      ==============
  250.       
  251.      To install PGP on your MSDOS system, you just have to copy it into a
  252.      suitable directory on your hard disk (like C:\PGP), and use the
  253.      shareware PKUNZIP utility to decompress it from the compressed
  254.      archive release file.  For best results, you will also modify your
  255.      AUTOEXEC.BAT file, as described elsewhere in this manual, but you can
  256.      do that later, after you've played with PGP a bit and read more of
  257.      this manual.
  258.       
  259.      For further details on installation, see the separate PGP
  260.      Installation Guide, in the MSDOS file SETUP.DOC included with this
  261.      release.  It fully describes how to set up the PGP directory and how
  262.      to use PKUNZIP to install it, and also describes how to detect virus
  263.      infections of PGP releases.
  264.       
  265.       
  266.       
  267.      How to Use PGP
  268.      ==============
  269.       
  270.       
  271.      To See a Usage Summary
  272.      ----------------------
  273.       
  274.      To see a quick command usage summary for PGP, just type:
  275.       
  276.          pgp
  277.       
  278.      This will display a usage summary for the most essential commands 
  279.      only.  The commands described in the Advanced Topics section are not
  280.      displayed.
  281.       
  282.       
  283.       
  284.      Encrypting a Message
  285.      --------------------
  286.       
  287.      To encrypt a plaintext file with the recipent's public key, type:
  288.       
  289.          pgp -e textfile her_userid
  290.       
  291.      This command produces a ciphertext file called textfile.ctx.  A
  292.      specific example is:
  293.       
  294.          pgp -e letter.txt Alice_S
  295.       
  296.      This will search your public key ring file "keyring.pub" for any 
  297.      public key certificates that contain the string "Alice S" anywhere in
  298.      the user ID field.  The search is not case-sensitive.  Note that
  299.      underlines get changed to spaces.  That's because you can't use real
  300.      spaces in the user ID on the command line.  If it finds a matching
  301.      public key, it uses it to encrypt the plaintext file "letter.txt",
  302.      producing a ciphertext file called "letter.ctx". 
  303.  
  304.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 7
  305.  
  306.  
  307.       
  308.      PGP will attempt to compress the plaintext before encrypting it,
  309.      thereby greatly enhancing resistance to cryptanalysis.  Thus the
  310.      ciphertext file will likely be smaller than the plaintext file.
  311.       
  312.       
  313.      Signing a Message
  314.      -----------------
  315.       
  316.      To sign a plaintext file with your secret key, type:
  317.       
  318.          pgp -s textfile your_userid
  319.       
  320.      This command produces a signed file called textfile.ctx.  A specific 
  321.      example is:
  322.       
  323.          pgp -s letter.txt Bob
  324.       
  325.      This will search your secret key ring file "keyring.sec" for any 
  326.      secret key certificates that contain the string "Bob" anywhere in the
  327.      user ID field.  The search is not case-sensitive.  Note that
  328.      underlines get changed to spaces.  If it finds a matching secret key,
  329.      it uses it to sign the plaintext file "letter.txt", producing a
  330.      signature file called "letter.ctx". 
  331.       
  332.       
  333.       
  334.      Signing and then Encrypting
  335.      ---------------------------
  336.       
  337.      To sign a plaintext file with your secret key, and then encrypt it 
  338.      with the recipent's public key:
  339.       
  340.          pgp -es textfile her_userid your_userid
  341.       
  342.      This example produces a nested ciphertext file called textfile.ctx.
  343.      Your secret key to create the signature is automatically looked up in
  344.      your secret key ring via your_userid.  Her public encryption key is
  345.      automatically looked up in your public keyring via her_userid.  If
  346.      you leave these user ID fields off the command line, you will be 
  347.      prompted for them.
  348.       
  349.      Note that PGP will attempt to compress the plaintext before
  350.      encrypting it.
  351.       
  352.       
  353.       
  354.      Using Just Conventional Encryption
  355.      ----------------------------------
  356.       
  357.      Sometimes you just need to encrypt a file the old-fashioned way, with
  358.      conventional single-key cryptography.  This approach is useful for
  359.      protecting archive files that will be stored but will not be sent to
  360.      anyone else.  Since the same person that encrypted the file will also
  361.      decrypt the file, public key cryptography is not really necessary. 
  362.       
  363.  
  364.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 8
  365.  
  366.  
  367.      To encrypt a plaintext file with just conventional cryptography,
  368.      type:
  369.       
  370.          pgp -c textfile
  371.       
  372.      This example encrypts the plaintext file called textfile, producing a
  373.      ciphertext file called textfile.ctx, without using public key
  374.      cryptography, key rings, user IDs, or any of that stuff.  It prompts
  375.      you for a pass phrase to use as a conventional key to encipher the
  376.      file.  Note that PGP will attempt to compress the plaintext before
  377.      encrypting it.  
  378.       
  379.       
  380.      Decrypting and Checking Signatures
  381.      ----------------------------------
  382.       
  383.      To decrypt an encrypted file, or to check the signature integrity of a
  384.      signed file:
  385.       
  386.          pgp ciphertextfile [plaintextfile]
  387.       
  388.      Note that [brackets] denote an optional field, so don't actually type
  389.      real brackets.  
  390.       
  391.      The ciphertext file name is assumed to have a default extension of
  392.      ".ctx".  The optional plaintext file name specifies where to put
  393.      processed plaintext output.  If no name is specified, the ciphertext
  394.      filename is used, with no extension.  If a signature is nested inside
  395.      of an encrypted file, it is automatically decrypted and the signature
  396.      integrity is checked.  The full user ID of the signer is displayed.
  397.       
  398.      Note that the "unwrapping" of the ciphertext file is completely 
  399.      automatic, regardless of whether the ciphertext file is just signed,
  400.      just encrypted, or both.  PGP uses the key ID prefix in the
  401.      ciphertext file to automatically find the appropriate secret
  402.      decryption key on your secret key ring.  If there is a nested
  403.      signature, PGP will then use the key ID prefix in the nested
  404.      signature to automatically find the appropriate public key on your
  405.      public key ring to check the signature.  If all the right keys are
  406.      already present on your key rings, no user intervention is required,
  407.      except that you will be prompted for your password for your secret
  408.      key if necessary.  If the ciphertext file was conventionally
  409.      encrypted without public key cryptography, PGP will recognize this 
  410.      and will prompt you for the pass phrase to decrypt it.
  411.       
  412.       
  413.  
  414.      PGPGUIDE.DOC             Wednesday, June 5, 1991 2:28 pm             Page 9
  415.  
  416.  
  417.       
  418.      Managing Keys
  419.      =============
  420.       
  421.      RSA Key Generation
  422.      ------------------
  423.       
  424.      To generate your own unique public/secret key pair of a specified
  425.      size, type:  
  426.       
  427.          pgp -k
  428.       
  429.      The software will prompt you for a filename for the pair of keys,
  430.      which will be written to filename.pub and filename.sec.  It will also
  431.      give you a menu of recommended key sizes (casual grade, commercial
  432.      grade, or military grade) and prompt you for what size key you want,
  433.      up to around a thousand bits.  
  434.       
  435.      It also asks for a user ID, which means your name.  It's a good idea
  436.      to use your full name as your user ID, because then there is less
  437.      risk of other people using the wrong public key to encrypt messages
  438.      to you.  Spaces and punctuation are allowed in the user ID.  Also, if
  439.      you put your last name first it would facilitate producing lists of
  440.      public keys sorted by user ID. e.g.:  "Smith, Robert M."
  441.       
  442.      It will also ask for a "pass phrase" to protect your RSA secret key
  443.      in case it falls into the wrong hands.  Nobody can use your secret key
  444.      file without this pass phrase.  The pass phrase is like a password,
  445.      except that it can be a whole phrase or sentence with many words,
  446.      spaces, punctuation, or anything else you want in it.  Don't lose
  447.      this pass phrase, there's no way to recover it if you do lose it. 
  448.      This pass phrase will be needed later every time you use your RSA
  449.      secret key.  The pass phrase is case-sensitive, and should not be too
  450.      short or easy to guess.  It is never displayed on the screen.  Don't
  451.      leave it written down anywhere where someone else can see it.  If you
  452.      don't want a pass phrase (ill-advised), just press return (or enter)
  453.      at the pass phrase prompt.
  454.       
  455.      The RSA key pair is derived from large truly random numbers derived
  456.      from measuring the intervals between your keystrokes with a fast
  457.      timer.
  458.       
  459.      Note that RSA key generation is a VERY lengthy process.  It may take
  460.      a few seconds for a small key on a fast processor, or many minutes
  461.      for a large key, or even hours for a large key on an old IBM PC/XT.
  462.       
  463.      The public keyfile can be sent to your friends for inclusion in their
  464.      public key rings.  Naturally, you keep your secret key file to
  465.      yourself, and you should include it on your secret key ring.  Each
  466.      secret key on a key ring is individually protected with its own pass
  467.      phrase.  
  468.       
  469.      Never give you secret key to anyone else.  For the same reason, don't
  470.      make keys for your friends.  Everyone should make their own key pair.  
  471.       
  472.       
  473.  
  474.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 10
  475.  
  476.  
  477.       
  478.      Adding a Key to Your Key Ring
  479.      -----------------------------
  480.       
  481.      To add a public or secret key file's contents to your public or
  482.      secret key ring (note that [brackets] denote an optional field):
  483.       
  484.          pgp -a keyfile [keyring]
  485.       
  486.      The keyfile extension defaults to ".pub", implying a public key.  The
  487.      optional keyring file name is assumed to be literally "keyring.pub"
  488.      or "keyring.sec", depending on whether the keyfile name had a ".pub"
  489.      or ".sec" extension.  You may specify a different key ring file
  490.      name.  The default key ring extension is ".pub".
  491.       
  492.      If the key is already on your keyring, PGP will not add it again. 
  493.      All of the keys in the keyfile will be added to the keyring.  Note
  494.      that the keyfile should only contain one key, because PGP only checks
  495.      the first key in the keyfile for duplicates on the keyring. 
  496.       
  497.       
  498.      Removing a Key from Your Key Ring
  499.      ---------------------------------
  500.       
  501.      To remove a key from your public key ring:
  502.       
  503.          pgp -r userid [keyring]
  504.       
  505.      This will search for the specified user ID in your keyring, and will
  506.      remove it if it finds a match.  Remember that any fragment of the
  507.      user ID will suffice for a match.  The optional keyring file name is
  508.      assumed to be literally "keyring.pub".  It can be omitted, or you can
  509.      specify "keyring.sec" if you want to remove a secret key.  You may
  510.      specify a different key ring file name.  The default key ring
  511.      extension is ".pub".
  512.       
  513.       
  514.      Viewing the Contents of Your Key Ring
  515.      -------------------------------------
  516.       
  517.      To view the contents of your public key ring:
  518.       
  519.          pgp -v [userid] [keyring] 
  520.       
  521.      This will list any keys in the key ring that match the specified user
  522.      ID substring.  If you omit the user ID, all of the keys in the key
  523.      ring will be listed.  The optional keyring file name is assumed to be
  524.      literally "keyring.pub".  It can be omitted, or you can specify 
  525.      "keyring.sec" if you want to list secret keys.  If you want to 
  526.      specify a different key ring file name, you can.  The default key 
  527.      ring extension is ".pub".  
  528.       
  529.      If you want to specify a particular key ring file name, but want to
  530.      see all the keys in it, try this alternative approach:
  531.       
  532.          pgp keyfile.sec
  533.  
  534.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 11
  535.  
  536.  
  537.       
  538.      Using this approach requires that the key ring name be fully
  539.      qualified with the extension of ".pub" or ".sec", because if you
  540.      don't specify a file extension, ".ctx" is assumed.
  541.       
  542.       
  543.       
  544.      Signed Public Key Certificates
  545.      ------------------------------
  546.       
  547.      In a public key cryptosystem, you don't have to protect public keys
  548.      from exposure.  In fact, it's better if they are widely disseminated.
  549.      But it is important to protect public keys from tampering, to make
  550.      sure that a public key really belongs to whom it appears to belong.  
  551.      Let's first look at a potential disaster, then at how to safely avoid
  552.      it with PGP.
  553.       
  554.      Suppose you wanted to send a private message to Alice.  You download
  555.      Alice's public key certificate from an electronic bulletin board
  556.      system (BBS).  You encrypt your letter to Alice with this public key
  557.      and send it to her through the BBS's E-mail facility.
  558.       
  559.      Unfortunately, unbeknownst to you or Alice, another user named
  560.      Charles has infiltrated the BBS and generated a public key of his own
  561.      with Alice's user ID attached to it.  He covertly substitutes his
  562.      bogus key in place of Alice's real public key.  You unwittingly use
  563.      this bogus key belonging to Charles instead of Alice's public key. 
  564.      All looks normal because this bogus key has Alice's user ID.  Now
  565.      Charles can decipher the message intended for Alice because he has
  566.      the matching secret key.  He may even re-encrypt the deciphered
  567.      message with Alice's real public key and send it on to her so that no
  568.      one suspects any wrongdoing.  Furthermore, he can even make
  569.      apparantly good signatures from Alice with this secret key because
  570.      everyone will use the bogus public key to check Alice's signatures.
  571.       
  572.      The only way to prevent this disaster is to prevent anyone from
  573.      tampering with public keys.  If you got Alice's public key directly
  574.      from Alice, this is no problem.  But that may be difficult if Alice
  575.      is a thousand miles away, or is currently unreachable.  Perhaps you
  576.      could get Alice's public key from a mutual trusted friend David who
  577.      knows he has a good copy of Alice's public key.  David could sign
  578.      Alice's public key, vouching for the integrity of Alice's public
  579.      key.  David would create this signature in the usual way, with
  580.      his own secret key. 
  581.       
  582.      This would create a signed public key certificate, and would show
  583.      that Alice's key had not been tampered with.  This requires you have a
  584.      known good copy of David's public key to check his signature.  Perhaps
  585.      David could provide Alice with a signed copy of your public key also.
  586.      David is thus serving as an "introducer" between you and Alice.  
  587.       
  588.      This signed public key certificate for Alice could be uploaded by
  589.      David or Alice to the BBS, and you could download it later.  You
  590.      could then check the signature via David's public key and thus be
  591.      assured that this is really Alice's public key.  No imposter can fool
  592.      you into accepting his own bogus key as Alice's because no one else
  593.  
  594.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 12
  595.  
  596.  
  597.      can forge signatures made by David.
  598.       
  599.      A widely trusted person could even specialize in providing this
  600.      service of "introducing" users to each other by providing signatures
  601.      for their public key certificates.  This trusted person could be
  602.      regarded as a "key server", or as a "Certifying Authority".  Any
  603.      public key certificates bearing the key server's signature could be
  604.      trusted as truly belonging to whom they appear to belong to.  All
  605.      users who wanted to participate would need a known good copy of just
  606.      the key server's public key, so that the key server's signatures
  607.      could be verified.  
  608.       
  609.      A trusted centralized key server or Certifying Authority is
  610.      especially appropriate for large impersonal centrally-controlled
  611.      corporate or government institutions.  Some institutional
  612.      environments use hierarchies of Certifying Authorities.  For more
  613.      decentralized grassroots "guerilla style" environments, allowing all
  614.      users to act as a trusted introducers for their friends would probably 
  615.      work better than a centralized key server.  PGP tends to emphasize
  616.      this decentralized non-institutional approach.  It better reflects
  617.      the natural way humans interact on a personal social level, and
  618.      allows people to better choose who they can trust for key management.
  619.       
  620.      You should add a new public key to your key ring only after you are
  621.      sure that it is a good public key that has not been tampered with and
  622.      actually belongs to the person it claims to.  You can be sure of this
  623.      if you got this public key certificate directly from its owner, or if
  624.      it bears the signature of someone else that you trust, from whom you
  625.      already have a good public key.  The user ID should have the full
  626.      name of the key's owner, not just her first name.
  627.       
  628.      If you are asked to sign someone else's public key certificate, make
  629.      certain that it really belongs to that person named in the user ID of
  630.      that public key certificate.  This is because your signature on her
  631.      public key certificate is a promise by you that this public key
  632.      really belongs to her.  Other people who trust you will accept her
  633.      public key because it bears your signature.  Bear in mind that your
  634.      signature on a public key certificate does not vouch for the
  635.      integrity of that person, but only vouches for the integrity (the 
  636.      ownership) of that person's public key.
  637.       
  638.      You may want to keep your own public key around with signatures from
  639.      a variety of "introducers" in the hopes that most people will trust
  640.      at least one of the introducers to vouch for your own public key's
  641.      integrity.
  642.       
  643.      Make sure no one else can tamper with your own public key ring.
  644.      Checking a new signed public key certificate must ultimately depend
  645.      on the integrity of the public keys that are already on your own
  646.      public key ring.  Keep a trusted backup copy of your public key ring
  647.      on write-protected media, and check it once in a while against the
  648.      working copy.  Back up your secret key ring, too.
  649.       
  650.      Protect your own secret key and your pass phrase carefully.  Really,
  651.      really carefully.  If your secret key is ever compromised, you'd
  652.      better get the word out quickly to all interested parties (good luck)
  653.  
  654.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 13
  655.  
  656.  
  657.      before someone else uses it to make signatures in your name.  For
  658.      example, they could use it to sign bogus public key certificates,
  659.      which could create problems for many people, especially if your
  660.      signature is widely trusted.
  661.       
  662.       
  663.  
  664.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 14
  665.  
  666.  
  667.       
  668.      Advanced Topics
  669.      ===============
  670.       
  671.       
  672.      Separating Signatures from Messages
  673.      -----------------------------------
  674.       
  675.      Normally, signature certificates are prepended (attached) to the text
  676.      they sign.  This makes it convenient in simple cases to check
  677.      signatures.  It is desirable in some circumstances to have signature
  678.      certificates stored separately from the messages they sign.  It is
  679.      possible to generate signature certificates that are detached from
  680.      the text they sign. To do this, combine the 'b' (break) option with
  681.      the 's' (sign) option.  For example:
  682.       
  683.          pgp -sb letter.txt your_userid
  684.       
  685.      This example produces an isolated signature certificate in a file
  686.      called "letter.ctx".  The contents of letter.txt are not appended to
  687.      the signature certificate.
  688.       
  689.      After creating the signature certificate file (letter.ctx in the
  690.      above example), send it along with the original text file to the
  691.      recipient.  The recipient must have both files to check the signature
  692.      integrity.  When the recipient attempts to process the signature
  693.      file, PGP will notice that there is no text in the same file with the
  694.      signature and will prompt the user for the filename of the text. 
  695.      Only then will PGP be able to properly check the signature
  696.      integrity.  If the recipient knows in advance that the signature is
  697.      detached from the text file, she can specify both filenames on the
  698.      command line:
  699.       
  700.          pgp letter.ctx letter.txt
  701.      or: pgp letter letter.txt
  702.       
  703.      PGP will not have to prompt for the text file name in this case.
  704.       
  705.      A detached signature certificate is useful if you want to keep the
  706.      signature certificate in a separate certificate log.  A detached
  707.      signature of an executable program is also useful for detecting a
  708.      subsequent virus infection.  It is also useful if more than one party
  709.      must sign a document such as a legal contract, without nesting
  710.      signatures.  Each person's signature is independent.
  711.       
  712.       
  713.       
  714.      Sending Ciphertext Through E-mail Channels: Uuencode Format
  715.      -----------------------------------------------------------
  716.       
  717.      For all you Unix fans out there:  PGP supports uuencode format for
  718.      ciphertext messages.  This special format represents binary data by
  719.      using only printable ASCII characters, so it is useful for
  720.      transmitting binary encrypted data through 7-bit channels or for
  721.      sending binary encrypted data as normal E-mail text.  
  722.       
  723.  
  724.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 15
  725.  
  726.  
  727.      Uuencode format converts the plaintext by expanding groups of 3
  728.      binary 8-bit bytes into 4 printable ASCII characters, so the file
  729.      will grow by about 35%.  But this expansion isn't so bad when you
  730.      consider that the file probably was compressed more than that by PGP
  731.      before it was encrypted.
  732.       
  733.      To produce a ciphertext file in uuencode format, just add the "u"
  734.      option when encrypting or signing a message, like so:
  735.       
  736.          pgp -esu message.txt her_userid your_userid
  737.       
  738.      This example produces a ciphertext file called "message.ctx" that
  739.      contains data in Unix uuencode format.  This file can be easily
  740.      uploaded into a text editor through 7-bit channels for transmission
  741.      as normal E-mail on Internet or any other E-mail network.
  742.       
  743.      Decrypting the uuencode-formatted message is no different than a
  744.      normal decrypt.  For example:
  745.       
  746.          pgp message
  747.       
  748.      PGP will automatically recognize that the file "message.ctx" is in
  749.      uuencode format and will uudecode it before processing as it normally
  750.      does.  The output file will be in normal plaintext form, just as it
  751.      was in the original file "message.txt".
  752.       
  753.      During decryption, after PGP uudecodes the ".ctx" file, it leaves it
  754.      in binary ciphertext form.  In other words, the ".ctx" file is no
  755.      longer in uuencode format when PGP is done processing it.  PGP
  756.      produces a decrypted plaintext file, and also produces as a by-product
  757.      a uudecoded ciphertext file in binary form.
  758.       
  759.      If you want to send a public key or key ring to someone else in
  760.      uuencode format, sign it with the "-su" options to create a ".ctx"
  761.      file with the signed key in uuencode format.
  762.       
  763.       
  764.       
  765.      Leaving No Traces of Plaintext on the Disk
  766.      ------------------------------------------
  767.       
  768.      After PGP makes a ciphertext file for you, you can have PGP
  769.      automatically overwrite the plaintext file and delete it, leaving no
  770.      trace of plaintext on the disk so that no one can recover it later
  771.      using a disk block scanning utility.  This is useful if the plaintext
  772.      file contains sensitive information that you don't want to keep
  773.      around.
  774.       
  775.      To wipe out the plaintext file after producing the ciphertext file,
  776.      just add the "w" (wipe) option when encrypting or signing a message,
  777.      like so:
  778.       
  779.          pgp -esw message.txt her_userid your_userid
  780.       
  781.      This example will create the ciphertext file "message.ctx", and the 
  782.      plaintext file "message.txt" will be destroyed beyond recovery.
  783.  
  784.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 16
  785.  
  786.  
  787.       
  788.      Obviously, you should be careful with this option.  Also note that
  789.      this will not wipe out any fragments of plaintext that your word
  790.      processor might have created on the disk while you were editing the
  791.      message before running PGP.  Most word processors create backup
  792.      files, scratch files, or both.
  793.       
  794.       
  795.       
  796.      Environmental Variable for Path Name
  797.      ------------------------------------
  798.       
  799.      The standard key ring files "keyring.pub" and "keyring.sec" can be kept
  800.      in any directory, by setting the environmental variable "PGPPATH" to 
  801.      the desired pathname.  For example, the MSDOS shell command:
  802.       
  803.          SET PGPPATH=C:\PGP
  804.       
  805.      will make PGP assume the key ring filenames "C:\PGP\keyring.pub" and
  806.      "C:\PGP\keyring.sec".  Assuming, of course, this directory exists. 
  807.      Use your favorite text editor to modify your MSDOS AUTOEXEC.BAT file
  808.      to automatically set up this variable whenever you start up your
  809.      system.  If PGPPATH remains undefined, these special files are
  810.      assumed to be in the current directory.
  811.       
  812.       
  813.       
  814.  
  815.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 17
  816.  
  817.  
  818.       
  819.      A Peek Under the Hood
  820.      =====================
  821.       
  822.      Let's take a look at a few internal features of PGP.
  823.       
  824.       
  825.      Random Numbers
  826.      --------------
  827.       
  828.      PGP uses a cryptographically strong pseudorandom number generator for
  829.      creating temporary conventional session keys.  The seed file for this
  830.      is called  "randseed.pgp".  It too can be kept in whatever directory
  831.      is indicated by the PGPPATH environmental variable.  If this random
  832.      seed file does not exist, it will be automatically created and seeded
  833.      with truly random numbers derived from timing your keystroke
  834.      latencies.  
  835.       
  836.      This generator reseeds the disk file each time it is used with new
  837.      key material partially derived with the time of day and other truly
  838.      random sources.  It uses the conventional encryption algorithm as an
  839.      engine for the random number generator.  The seed file contains both
  840.      random seed material and random key material to key the conventional
  841.      encryption engine for the random generator.
  842.       
  843.      If you are a security fanatic and distrust any algorithmically
  844.      derived random number source however strong, you can defeat this
  845.      feature by creating an empty file named "randseed.pgp".  This file
  846.      must be empty or nearly empty to turn off this pseudorandom
  847.      generator.  In that case, every encryption session key will require a
  848.      bothersome request to the user to type some text in at the keyboard
  849.      to measure the keystroke intervals with a high speed timer.  It would
  850.      be more convenient and not that unsafe to use the strong pseudorandom
  851.      generator.  
  852.       
  853.       
  854.      PGP's Conventional Encryption Algorithm
  855.      ---------------------------------------
  856.       
  857.      PGP does not use the DES as its conventional single-key algorithm to
  858.      encrypt messages.  Instead it uses a custom conventional single-key
  859.      block encryption algorithm.  It "bootstraps" into this faster
  860.      algorithm by using RSA to encipher the conventional session key.
  861.       
  862.      For the cryptographically curious, PGP's conventional block cipher
  863.      has a 256-byte block size for the plaintext and the ciphertext.  It
  864.      also uses a key size of up to 256 bytes.  Permutation and substitution
  865.      are used on all the bits throughout the block in each round, rapidly
  866.      building intersymbol dependance between the ciphertext and both the
  867.      plaintext and the key.  It can be configured to run from 1 to 8
  868.      rounds.  It compares well with software implementations of the DES in
  869.      speed.  Like the DES, it can be used in cipher feedback (CFB) and
  870.      cipher block chaining (CBC) modes.  PGP uses it in CFB mode.
  871.       
  872.      PGP's conventional encryption algorithm is based in large part on
  873.      cryptographer Charles Merritt's algorithms.  Merritt's algorithm does
  874.  
  875.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 18
  876.  
  877.  
  878.      have something of a track record; derivatives of it have been used
  879.      for secure U.S. military communications.  Merritt's original designs
  880.      were refined by Zhahai Stewart and myself to improve security and to
  881.      improve performance in a portable C implementation.  The algorithm
  882.      has not yet (in 1991) been through a formal security review and has
  883.      had only limited peer review.  It has been carefully scrutinized for
  884.      weaknesses.  A full discussion of the architecture is beyond the
  885.      scope of this preliminary draft of this document.  Interested parties
  886.      can get design details from me or from the published source code.  
  887.       
  888.       
  889.      Data Compression
  890.      ----------------
  891.       
  892.      PGP normally compresses the plaintext before encrypting it.  It's too
  893.      late to compress it after it has been encrypted; encrypted data is
  894.      incompressible.  Data compression saves modem transmission time and
  895.      disk space and more importantly strengthens cryptographic security.  
  896.      Most cryptanalysis techniques exploit redundancies found in the
  897.      plaintext to crack the cipher.  Data compression reduces this
  898.      redundancy in the plaintext, thereby greatly enhancing resistance to 
  899.      cryptanalysis.  It seems to take longer to compress the plaintext
  900.      than to encrypt it, but from a security point of view it seems worth
  901.      the extra time, at least in my cautious opinion. 
  902.       
  903.      Files that are too short to compress or just don't compress well are
  904.      not compressed by PGP.  
  905.       
  906.      If you prefer, you can use PKZIP to compress the plaintext before
  907.      encrypting it.  PKZIP is a widely-available and effective MSDOS
  908.      shareware compression utility from PKWare, Inc (9025 N Deerwood Dr,
  909.      Brown Deer, WI 53223).  Unlike PGP's built-in compression algorithm,
  910.      PKZIP has the nice feature of compressing multiple files into a
  911.      single compressed file, which is reconstituted again into separate
  912.      files when decompressed.  PKZIP also compresses faster than the
  913.      internal compression algorithm used in PGP.  PGP will not try to
  914.      compress a plaintext file that has already been compressed by PKZIP. 
  915.      After decrypting, the recipient can decompress the plaintext with
  916.      PKUNZIP.  If the decrypted plaintext is a PKZIP compressed file, PGP
  917.      will automatically recognize this and will advise the recipient that
  918.      the decrypted plaintext appears to be a PKZIP file.
  919.       
  920.      For the technically curious readers, PGP uses the public domain LZHuf
  921.      compression routines written in Japan by Haruyasu Yoshizaki, based on
  922.      the original LZSS compression routines by Haruhiko Okumura.  The
  923.      adaptive Huffman algorithm was added by Yoshizaki to increase speed
  924.      and compression, and he used the LZHuf routines to develop the LHarc
  925.      archiver.  Allan Hoeltje added a run-length encoding layer for better
  926.      speed.  This compression software was selected for PGP because of its
  927.      public domain portable C source code availability, and because it has
  928.      a good compression ratio.
  929.       
  930.       
  931.       
  932.  
  933.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 19
  934.  
  935.  
  936.       
  937.      Vulnerabilities
  938.      ===============
  939.       
  940.      No data security system is inpenetrable.  PGP can be circumvented in
  941.      a variety of ways.  In any data security system, you have to ask
  942.      yourself if the information you are trying to protect is valuable
  943.      enough to your attacker that the cost of the attack is less than the
  944.      value of the information.  This should lead you to protecting
  945.      yourself from the cheapest attacks, while not worrying about the more
  946.      expensive attacks.  Some of the discussion that follows may seem
  947.      unduly paranoid, but such an attitude is appropriate for a reasonable
  948.      discussion of vulnerability issues. 
  949.       
  950.       
  951.      Compromised Pass Phrase and Secret Key
  952.      --------------------------------------
  953.       
  954.      Probably the simplest attack is if you leave your pass phrase 
  955.      for your secret key written down somewhere.  If someone gets it and
  956.      gets your secret key file, they can read your messages and make
  957.      signatures in your name.  Also, don't use obvious passwords that can
  958.      be easily guessed, such as the names of your kids or spouse.
  959.       
  960.       
  961.      Public Key Tampering
  962.      --------------------
  963.       
  964.      Another vulnerability exists if public keys are tampered with.  This
  965.      attack and appropriate hygienic countermeasures are detailed in this
  966.      document in the section "Signed Public Key Certificates".  When you
  967.      use someone's public key, make certain it has not been tampered with.
  968.      Also make sure no one else can tamper with your own public key ring.
  969.       
  970.       
  971.      "Not Quite Deleted" Files
  972.      -------------------------
  973.       
  974.      Another potential security problem is caused by how most operating
  975.      systems delete files.  When you encrypt a file and then delete the
  976.      original plaintext file, the operating system doesn't actually
  977.      physically erase the data.  It merely marks those disk blocks as
  978.      deleted, allowing the space to be reused later.  It's sort of like
  979.      discarding sensitive paper documents in the paper recycling bin
  980.      instead of the paper shredder.  The disk blocks still contain the
  981.      original sensitive data you wanted to erase, and will probably
  982.      eventually be overwritten by new data at some point in the future. 
  983.      If an attacker reads these deleted disk blocks soon after they have
  984.      been deallocated, he could recover your plaintext. 
  985.       
  986.      In fact this could even happen accidentally, if for some reason
  987.      something went wrong with the disk and some files were accidentally
  988.      deleted or corrupted.  A disk recovery program may be run to recover
  989.      the damaged files, but this often means some previously deleted files
  990.      are resurrected along with everything else.  Your confidential files
  991.      that you thought were gone forever could then reappear and be
  992.  
  993.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 20
  994.  
  995.  
  996.      inspected by whomever is attempting to recover your damaged disk.  
  997.      Even while you are creating the original message with a word
  998.      processor or text editor, the editor may be creating multiple
  999.      temporary copies of your text on the disk, just because of its
  1000.      internal workings.  These temporary copies of your text are deleted
  1001.      by the word processor when it's done, but these sensitive fragments
  1002.      are still on your disk somewhere.  The only way to prevent all this
  1003.      from happening is to somehow cause the sensitive deleted plaintext
  1004.      files to be overwritten.  There are disk utilities available that can
  1005.      overwrite all of the unused blocks on a disk.  For example, I think
  1006.      the Norton Utilities for MSDOS can do this.
  1007.       
  1008.       
  1009.      Viruses and Trojan Horses
  1010.      -------------------------
  1011.       
  1012.      Another attack could involve a specially-tailored hostile computer
  1013.      virus or worm that might infect PGP or your operating system.  This
  1014.      hypothetical virus could be designed to capture your pass phrase or
  1015.      secret key or deciphered messages, and covertly write the captured
  1016.      information to a file or send it through a network to the virus's
  1017.      owner.  Or it might alter PGP's behavior so that signatures are not
  1018.      properly checked.  This attack is cheaper than cryptanalytic attacks.
  1019.       
  1020.      Defending against this falls under the catagory of defending against
  1021.      viral infection generally.  There are some moderately capable
  1022.      anti-viral products commercially available, and there are hygienic
  1023.      procedures to follow that can greatly reduce the chances of viral
  1024.      infection.  A complete treatment of anti-viral and anti-worm
  1025.      countermeasures is beyond the scope of this document.  PGP has no
  1026.      defenses against viruses, and assumes your own personal computer is a
  1027.      trustworthy execution environment.  If such a virus or worm actually
  1028.      appeared, hopefully word would soon get around warning everyone.  
  1029.       
  1030.      Another similar attack involves someone creating a clever imitation
  1031.      of PGP that behaves like PGP in most respects, but doesn't work the
  1032.      way it's supposed to.  For example, it might be deliberately crippled
  1033.      to not check signatures properly, allowing bogus key certificates to
  1034.      be accepted.  This "Trojan horse" version of PGP is not hard for an
  1035.      attacker to create, because PGP source code is widely available, so
  1036.      anyone could modify the source code and produce a lobotomized zombie
  1037.      imitation PGP that looks real but does the bidding of its diabolical
  1038.      master.  This Trojan horse version of PGP could then be widely
  1039.      circulated, claiming to be from me.  How insidious.
  1040.       
  1041.      To help protect against viral infection of PGP or later Trojan horse
  1042.      copies of PGP, I included a signature certificate file called PGP.CTX
  1043.      in the MSDOS release of PGP.  It bears my signature for the MSDOS
  1044.      executable file PGP.EXE, to assure that PGP.EXE has not been
  1045.      subsequently infected with a virus.  To run this self-test of PGP
  1046.      to check its own integrity with my signature certificate, type:
  1047.       
  1048.          pgp pgp.ctx pgp.exe
  1049.       
  1050.      PGP should report a good signature from Philip R. Zimmermann on the
  1051.      PGP.EXE executable program file, which, in theory, indicates your copy
  1052.  
  1053.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 21
  1054.  
  1055.  
  1056.      of PGP software has no virus infection and has not been tampered
  1057.      with.  This will not help at all if your operating system is infected,
  1058.      nor will it detect if your original copy of PGP.EXE has been
  1059.      maliciously altered in such a way as to compromise its own ability to
  1060.      check signatures.  
  1061.       
  1062.      You should try to get at least your first copy of PGP from a trusted
  1063.      reliable source, so that you can use it to check my signature on
  1064.      subsequent releases of PGP.  You can keep the older trusted version
  1065.      of PGP around on a write-protected backup floppy, along with a
  1066.      trusted copy of my public key to check signatures on future PGP
  1067.      releases.  You'd also have to somehow make sure that my public key
  1068.      (also included in the PGP release) actually belongs to me, so it can
  1069.      be trusted to verify my signature.  Make sure that you use this
  1070.      trusted copy of my public key, and not rely on a public key included
  1071.      with a newer release of PGP that may be suspect.
  1072.       
  1073.      Just for good measure, I also included a signature certificate for
  1074.      this document, called PGPGUIDE.CTX.  I also included a signature
  1075.      certificate for the all PGP source files in the source release.
  1076.       
  1077.       
  1078.      Physical Security Breach
  1079.      ------------------------
  1080.       
  1081.      A physical security breach may allow someone to physically acquire
  1082.      your plaintext files or printed messages.  A determined opponent
  1083.      might accomplish this through burglery, trash-picking, unreasonable
  1084.      search and seizure, or coercion or infiltration of your staff.  Some
  1085.      of these attacks may be especially feasible against grassroots
  1086.      political organizations that depend on a largely volunteer staff.  It
  1087.      has been widely reported in the press that the FBI's COINTELPRO
  1088.      program used burglery, infiltration, and illegal bugging against
  1089.      antiwar and civil rights groups.  And look what happened at the
  1090.      Watergate Hotel.  Don't be lulled into a false sense of security just
  1091.      because you have a cryptographic tool.  Cryptographic techniques
  1092.      protect data only while it's encrypted-- direct physical security
  1093.      violations can still compromise plaintext data or written or spoken
  1094.      information.  This kind of attack is cheaper than cryptanalytic
  1095.      attacks.
  1096.       
  1097.       
  1098.      Tempest Attacks
  1099.      ---------------
  1100.       
  1101.      Another kind of attack that has been used by well-equipped opponents
  1102.      involves the remote detection of the electromagnetic signals from
  1103.      your computer.  This expensive and somewhat labor-intensive attack is
  1104.      probably still cheaper than direct cryptanalytic attacks.  An
  1105.      appropriately instrumented van can park near your office and remotely
  1106.      pick up all of your keystrokes and messages displayed on your
  1107.      computer video screen.  This would compromise all of your passwords,
  1108.      messages, etc.  This attack can be thwarted by properly shielding all
  1109.      of your computer equipment and network cabling so that it does not
  1110.      emit these signals.  This shielding technology is known as "Tempest",
  1111.      and is used by some Government agencies and defense contractors.  
  1112.  
  1113.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 22
  1114.  
  1115.  
  1116.      There are hardware vendors who supply Tempest shielding commercially,
  1117.      although it may be subject to some kind of Government licensing.
  1118.       
  1119.       
  1120.      Traffic Analysis
  1121.      ----------------
  1122.       
  1123.      Even if the attacker cannot read the contents of your encrypted
  1124.      messages, he may be able to infer at least some useful information by
  1125.      observing where the messages come from and where they are going, the
  1126.      size of the messages, and the time of day the messages are sent. 
  1127.      This is analogous to the attacker looking at your long distance phone
  1128.      bill to see who you called and when and for how long, even though the
  1129.      actual content of your calls is unknown to the attacker.  This is
  1130.      called traffic analysis.  PGP alone does not protect against traffic
  1131.      analysis.  Solving this problem would require specialized 
  1132.      communication protocols designed to reduce exposure to traffic
  1133.      analysis in your communication environment, possibly with some
  1134.      cryptographic assistance.
  1135.       
  1136.       
  1137.      Cryptanalysis
  1138.      -------------
  1139.       
  1140.      An expensive and formidible cryptanalytic attack could possibly be
  1141.      mounted by someone with vast supercomputer resources, such as a
  1142.      Government intelligence agency.  They might crack your RSA key by
  1143.      using some new secret factoring breakthrough.  Perhaps so, but it is
  1144.      noteworthy that the US Government trusts the RSA algorithm enough in
  1145.      some cases to use it to protect its own nuclear weapons, according to
  1146.      Ron Rivest.  
  1147.       
  1148.      Perhaps the Government has some classified methods of cracking the
  1149.      conventional encryption algorithm used in PGP.  This is every
  1150.      cryptographer's worst nightmare.  There can be no absolute security
  1151.      guarantees in practical cryptographic implementations.  Still, some
  1152.      optimism seems justified.  Widely accepted cryptographic design
  1153.      principles were followed in the design of this algorithm.  Since the
  1154.      source code and design are publicly available, other cryptographers
  1155.      will have a chance to review it.  Even if this algorithm has some
  1156.      subtle unknown weaknesses, the data compression of the plaintext
  1157.      before encryption should greatly reduce those weaknesses.
  1158.       
  1159.      If your situation justifies worrying about very formidible attacks of
  1160.      this caliber, then perhaps you should contact a data security
  1161.      consultant for some customized data security approaches tailored to
  1162.      your special needs.  Boulder Software Engineering, whose address and
  1163.      phone are given at the end of this document, can provide such
  1164.      services.
  1165.       
  1166.       
  1167.       
  1168.      Without good cryptographic protection of your data communications, it
  1169.      may have been practically effortless and perhaps even routine for an
  1170.      opponent to intercept your messages, especially those sent through a
  1171.      modem or E-mail system.  If you use PGP and follow reasonable
  1172.  
  1173.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 23
  1174.  
  1175.  
  1176.      precautions, the attacker will have to expend far more effort and
  1177.      expense to violate your privacy. 
  1178.       
  1179.      If you protect yourself against the simplest attacks, and you feel
  1180.      confident that your privacy is not going to be violated by a
  1181.      determined and highly resourceful attacker, then you'll probably be
  1182.      safe using PGP.  PGP gives you Pretty Good Privacy.
  1183.       
  1184.       
  1185.  
  1186.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 24
  1187.  
  1188.  
  1189.       
  1190.      Trusting Snake Oil
  1191.      ==================
  1192.       
  1193.      When examining a cryptographic software package, the question always
  1194.      remains, why should you trust this product?  Even if you examined the
  1195.      source code yourself, not everyone has the cryptographic experience
  1196.      to judge the security.  Even if you are an experienced cryptographer,
  1197.      subtle weaknesses in the algorithms could still elude you. 
  1198.       
  1199.      When I was in college in the early seventies, I devised what I
  1200.      believed was a brilliant encryption scheme.  A simple pseudorandom
  1201.      number stream was added to the plaintext stream to create
  1202.      ciphertext.  This would seemingly thwart any frequency analysis of
  1203.      the ciphertext, and would be uncrackable even to the most resourceful
  1204.      Government intelligence agencies.  I felt so smug about my
  1205.      achievement.  So cock-sure.  
  1206.       
  1207.      Years later, I discovered this same scheme in several introductory
  1208.      cryptography texts and tutorial papers.  How nice.  Other
  1209.      cryptographers had thought of the same scheme.  Unfortunately, the
  1210.      scheme was presented as a simple homework assignment on how to use
  1211.      elementary cryptanalytic techniques to trivially crack it.  So much
  1212.      for my brilliant scheme.
  1213.       
  1214.      From this humbling experience I learned how easy it is to fall into a
  1215.      false sense of security when devising an encryption algorithm.  Many
  1216.      mainstream software engineers have developed equally naive encryption
  1217.      schemes (often even the very same encryption scheme), and some of
  1218.      them have been incorporated into commercial encryption software
  1219.      packages and sold for good money to thousands of unsuspecting users. 
  1220.       
  1221.      This is like selling automotive seat belts that look good and feel
  1222.      good, but snap open in even the slowest crash test.  Depending on
  1223.      them may be worse than not wearing seat belts at all.  No one
  1224.      suspects they are bad until a real crash.  Depending on weak
  1225.      cryptographic software may cause you to unknowingly place sensitive
  1226.      information at risk.  You might not otherwise have done so if you had
  1227.      no cryptographic software at all.  Perhaps you may never even
  1228.      discover your data has been compromised.
  1229.       
  1230.      Sometimes commercial packages use the Federal Data Encryption
  1231.      Standard (DES), a good conventional algorithm recommended by the
  1232.      Government for commercial use (but not for classified information,
  1233.      oddly enough-- Hmmm).  There are several "modes of operation" the 
  1234.      DES can use, some of them better than others.  The Government
  1235.      specifically recommends not using the weakest simplest mode for
  1236.      messages, the Electronic Codebook (ECB) mode.  But they do recommend
  1237.      the stronger and more complex Cipher Feedback (CFB) or Cipher Block
  1238.      Chaining (CBC) modes.  
  1239.       
  1240.      Unfortunately, most of the commercial encryption packages I've looked
  1241.      at use ECB mode.  When I've talked to the authors of a number of
  1242.      these implementations, they say they've never heard of CBC or CFB
  1243.      modes, and didn't know anything about the weaknesses of ECB mode. 
  1244.      The very fact that they haven't even learned enough cryptography to
  1245.  
  1246.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 25
  1247.  
  1248.  
  1249.      know these elementary concepts is not reassuring.  These same
  1250.      software packages often include a second faster encryption algorithm
  1251.      that can be used instead of the slower DES.  The author of the
  1252.      package often thinks his proprietary faster algorithm is as secure as
  1253.      the DES, but after questioning him I usually discover that it's just
  1254.      a variation of my own brilliant scheme from college days.  Or maybe
  1255.      he won't even reveal how his proprietary encryption scheme works, but
  1256.      assures me it's a brilliant scheme and I should trust it.  I'm sure
  1257.      he believes that his algorithm is brilliant, but how can I know that
  1258.      without seeing it?  
  1259.       
  1260.      In all fairness I must point out that these products do not come from
  1261.      companies that specialize in cryptographic technology.
  1262.       
  1263.      In some ways, cryptography is like pharmaceuticals.  Its integrity
  1264.      may be absolutely crucial.  Bad penicillin looks the same as good
  1265.      penicillin.  You can tell if your spreadsheet software is wrong, but
  1266.      how do you tell if your cryptography package is weak?  The ciphertext
  1267.      produced by a weak encryption algorithm looks as good as ciphertext
  1268.      produced by a strong encryption algorithm.  There's a lot of snake
  1269.      oil out there.  A lot of quack cures.  Unlike the patent medicine
  1270.      hucksters of old, these software implementors usually don't even know
  1271.      their stuff is snake oil.  They usually haven't even read any of the
  1272.      academic literature in cryptography.  But they think they can write
  1273.      good cryptographic software.  And why not?  After all, it seems
  1274.      intuitively easy to do so.  And their software seems to work okay.    
  1275.       
  1276.      The Government has peddled snake oil too.  After World War II, the US
  1277.      sold German Enigma ciphering machines to third world governments.
  1278.      But they didn't tell them that the Allies cracked the Enigma code
  1279.      during the war, a fact that remained classified for many years.  Even
  1280.      today many Unix systems worldwide use the Enigma cipher for file
  1281.      encryption, in part because the Government has created legal
  1282.      obstacles against using better algorithms.  They even tried to
  1283.      prevent the initial publication of the RSA algorithm in 1977.  And
  1284.      they have squashed essentially all commercial efforts to develop
  1285.      effective secure telephones for the general public. 
  1286.       
  1287.      The principle job of the US Government's National Security Agency 
  1288.      (NSA) is to gather intelligence, principally by covertly tapping into
  1289.      people's private communications (see James Bamford's book, "The
  1290.      Puzzle Palace").  They have amassed considerable skill and resources
  1291.      for cracking codes.  When people can't get good cryptography to
  1292.      protect themselves, it makes NSA's job much easier.  NSA also has the
  1293.      responsibility of approving and recommending encryption algorithms. 
  1294.      Some critics charge that this is a conflict of interest, like putting
  1295.      the fox in charge of guarding the henhouse.  NSA has been pushing a
  1296.      new encryption algorithm that they designed, and they won't tell
  1297.      anybody how it works because that's classified.  They want others to
  1298.      trust it and use it.  But any cryptographer can tell you that a
  1299.      well-designed encryption algorithm does not have to be classified to
  1300.      remain secure.  Only the keys should need protection.  How does
  1301.      anyone else really know if NSA's classified algorithm is secure? 
  1302.      It's not that hard for NSA to design an encryption algorithm that
  1303.      only they can crack, if no one else can review the algorithm.  Are
  1304.      they deliberately selling snake oil? 
  1305.  
  1306.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 26
  1307.  
  1308.  
  1309.       
  1310.      I'm not as cock-sure about the security of PGP as I once was about my
  1311.      brilliant encryption software from college.  If I were, that would be
  1312.      a bad sign.  But I'm pretty sure that PGP does not contain any snake
  1313.      oil.  Source code is available, so other cryptographers are welcome
  1314.      to review its design.  It's reasonably well researched.  It's based
  1315.      on the work of a number of reputable cryptographers.  It's been years
  1316.      in the making.  And I don't work for the NSA.  I hope it doesn't
  1317.      require a large "leap of faith" to trust the security of PGP.
  1318.       
  1319.       
  1320.  
  1321.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 27
  1322.  
  1323.  
  1324.       
  1325.      Why Do You Need PGP?
  1326.      ====================
  1327.       
  1328.      It's personal.  It's private.  And it's no one's business but yours.
  1329.      You may be planning a political campaign, discussing your taxes, or
  1330.      having an illicit affair.  Or you may be doing something that you
  1331.      feel shouldn't be illegal, but is.  Whatever it is, you don't want
  1332.      your private electronic mail (E-mail) or confidential documents read
  1333.      by anyone else.  There's nothing wrong with asserting your privacy. 
  1334.      Privacy is as apple-pie as the Constitution.  
  1335.       
  1336.      Perhaps you think your E-mail is legitimate enough that encryption is
  1337.      unwarranted.  If you really are a law-abiding citizen with nothing to
  1338.      hide, then why don't you always send your paper mail on postcards? 
  1339.      Why not submit to drug testing on demand?  Why require a warrant for
  1340.      police searches of your house?  Are you trying to hide something? 
  1341.      You must be a subversive or a drug dealer if you hide your mail
  1342.      inside envelopes.  Or maybe a paranoid nut.  Do law-abiding citizens
  1343.      have any need to encrypt their E-mail?
  1344.       
  1345.      What if everyone believed that law-abiding citizens should use
  1346.      postcards for their mail?  If some brave soul tried to assert his
  1347.      privacy by using an envelope for his mail, it would draw suspicion. 
  1348.      Perhaps the authorities would open his mail to see what he's hiding. 
  1349.      Fortunately, we don't live in that kind of world.  Because everyone
  1350.      protects most of their mail with envelopes, no one draws suspicion by
  1351.      asserting their privacy with an envelope.  There's safety in numbers.  
  1352.      Analogously, it would be nice if everyone routinely used encryption
  1353.      for all their E-mail, innocent or not, so that no one drew suspicion
  1354.      by asserting their E-mail privacy with encryption.  Think of it as a
  1355.      form of solidarity.
  1356.       
  1357.      If the Government wants to violate the privacy of ordinary citizens,
  1358.      it has to expend a certain amount of expense and labor to intercept
  1359.      and steam open and read paper mail, and listen to and possibly
  1360.      transcribe spoken telephone conversation.  This kind of labor-
  1361.      intensive monitoring is not practical on a large scale.  This is only
  1362.      done in important cases when it seems worthwhile. 
  1363.       
  1364.      More and more of our private communications are going to be routed
  1365.      through electronic channels.  Electronic mail will gradually replace
  1366.      conventional paper mail.  E-mail messages are just too easy to
  1367.      intercept and scan for interesting keywords.  This can be done easily,
  1368.      routinely, automatically, and undetectably on a grand scale. 
  1369.      International cablegrams are already scanned this way on a large
  1370.      scale by the NSA. 
  1371.       
  1372.      We are moving toward a future when the nation will be crisscrossed
  1373.      with high capacity fiber optic data networks linking together all our
  1374.      increasingly ubiquitous personal computers.  E-mail will be the norm
  1375.      for everyone, not the novelty it is today.  Perhaps the Government
  1376.      will protect our E-mail with Government-designed encryption 
  1377.      algorithms.  Probably most people will trust that.  But perhaps some
  1378.      people will prefer their own protective measures.
  1379.       
  1380.  
  1381.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 28
  1382.  
  1383.  
  1384.      The 17 Apr 1991 New York Times reports on an unsettling US Senate
  1385.      proposal that is part of a counterterrorism bill.  If this nonbinding
  1386.      resolution became real law, it would force manufacturers of secure
  1387.      communications equipment to insert special "trap doors" in their
  1388.      products, so that the Government can read anyone's encrypted messages.  
  1389.      It reads:  "It is the sense of Congress that providers of electronic
  1390.      communications services and manufacturers of electronic communications 
  1391.      service equipment shall insure that communications systems permit the
  1392.      Government to obtain the plain text contents of voice, data, and
  1393.      other communications when appropriately authorized by law."  
  1394.       
  1395.      If privacy is outlawed, only outlaws will have privacy.  Intelligence
  1396.      agencies have access to good cryptographic technology.  So do the big
  1397.      arms and drug traffickers.  So do defense contractors, oil companies,
  1398.      and other corporate giants.  But ordinary people and grassroots
  1399.      political organizations mostly do not have access to affordable
  1400.      "military grade" public-key cryptographic technology.  
  1401.       
  1402.      PGP enables people to take their privacy into their own hands.  
  1403.      There's a growing social need for it.  That's why I wrote it.
  1404.       
  1405.       
  1406.  
  1407.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 29
  1408.  
  1409.  
  1410.       
  1411.      PGP Quick Reference
  1412.      ===================
  1413.       
  1414.      Here's a quick summary of PGP commands.
  1415.       
  1416.       
  1417.      To encrypt a plaintext file with the recipent's public key:
  1418.          pgp -e textfile her_userid
  1419.       
  1420.      To sign a plaintext file with your secret key:
  1421.          pgp -s textfile your_userid
  1422.       
  1423.      To sign a plaintext file with your secret key, and then encrypt it 
  1424.      with the recipent's public key:
  1425.          pgp -es textfile her_userid your_userid
  1426.       
  1427.      To encrypt a plaintext file with just conventional cryptography, type:
  1428.          pgp -c textfile
  1429.       
  1430.      To decrypt an encrypted file, or to check the signature integrity of a
  1431.      signed file:
  1432.          pgp ciphertextfile [plaintextfile]
  1433.       
  1434.      To generate your own unique public/secret key pair:
  1435.          pgp -k
  1436.       
  1437.      To add a public or secret key file's contents to your public or
  1438.      secret key ring:
  1439.          pgp -a keyfile [keyring]
  1440.       
  1441.      To remove a key from your public key ring:
  1442.          pgp -r userid [keyring]
  1443.       
  1444.      To view the contents of your public key ring:
  1445.          pgp -v [userid] [keyring] 
  1446.       
  1447.      To create a signature certificate that is detached from the document:
  1448.          pgp -sb textfile your_userid
  1449.       
  1450.      To produce a ciphertext file in Unix uuencode format, just add the
  1451.      "u" option when encrypting or signing a message:
  1452.          pgp -esu textfile her_userid your_userid
  1453.       
  1454.      To wipe out the plaintext file after producing the ciphertext file,
  1455.      just add the "w" (wipe) option when encrypting or signing a message:
  1456.          pgp -esw message.txt her_userid your_userid
  1457.       
  1458.       
  1459.  
  1460.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 30
  1461.  
  1462.  
  1463.       
  1464.      Legal Issues
  1465.      ============
  1466.       
  1467.       
  1468.      Trademarks, Copyrights, and Warranties
  1469.      --------------------------------------
  1470.       
  1471.      "Pretty Good Privacy", "Phil's Pretty Good Software", and the "Pretty
  1472.      Good" label for computer software and hardware products are all
  1473.      trademarks of Philip Zimmermann and Phil's Pretty Good Software.  PGP
  1474.      is (c) Copyright Philip R. Zimmermann, 1990.  
  1475.       
  1476.      The author assumes no liability for damages resulting from the use of
  1477.      this software, even if the damage results from defects in this
  1478.      software, and makes no representations concerning the merchantability
  1479.      of this software or its suitability for any specific purpose.  It is
  1480.      provided "as is" without express or implied warranty of any kind.
  1481.       
  1482.       
  1483.      Patent Rights on the Algorithms
  1484.      -------------------------------
  1485.       
  1486.      The RSA public key cryptosystem was developed at MIT with Federal
  1487.      funding from grants from the National Science Foundation and the
  1488.      Navy.  It is patented by MIT (U.S. patent #4,405,829, issued 20 Sep
  1489.      1983).  A company called Public Key Partners (PKP) holds the exclusive
  1490.      commercial license to sell and sub-license the RSA public key
  1491.      cryptosystem.  For licensing details on the RSA algorithm, you can
  1492.      contact Robert Fougner at PKP, at 408/735-6779.  The author of this
  1493.      software implementation of the RSA algorithm is providing this
  1494.      implementation for educational use only.  Licensing this algorithm
  1495.      from PKP is the responsibility of you, the user, not Philip
  1496.      Zimmermann, the author of this software implementation.  The author
  1497.      assumes no liability for any breach of patent law resulting from the
  1498.      unlicensed use by the user of the underlying RSA algorithm used in
  1499.      this software. 
  1500.       
  1501.      The LZHuf compression routines in PGP come from public domain source
  1502.      code.  I'm not aware of any patents on the LZHuf algorithm, but I've
  1503.      heard that a related compression algorithm, LZW, has some patent
  1504.      claims from Unisys Corporation.  LZHuf is different from LZW, and
  1505.      might not be affected by this patent.  If you're interested, you're
  1506.      welcome to look into this murky issue yourself.  If there are any
  1507.      patent claims that apply to LZHuf, then well, sorry, you'll have to
  1508.      take care of the patent licensing, not me.
  1509.       
  1510.      It seems like the patent office has been issuing patents on ideas to
  1511.      anyone who applies for one.  A software engineer may create a
  1512.      software package and unknowingly infringe on any number of patents. 
  1513.      Perhaps there is a patent somewhere on using a computer to do any
  1514.      kind of cryptography at all.  I once saw a Peanuts cartoon in the
  1515.      newspaper where Lucy showed Charlie Brown a fallen autumn leaf and
  1516.      said "This is the first leaf to fall this year."  Charlie Brown said,
  1517.      "How do you know that?  Leaves have been falling for weeks."  Lucy
  1518.      replied, "I had this one notarized."
  1519.  
  1520.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 31
  1521.  
  1522.  
  1523.       
  1524.       
  1525.      Licensing and Distribution
  1526.      --------------------------
  1527.       
  1528.      PKP controls licensing of the underlying RSA algorithm, but not on
  1529.      the PGP software that uses their RSA algorithm.  As far as I'm
  1530.      concerned, anyone may freely use or distribute PGP, without payment
  1531.      of fees to me (except as provided below).  You must keep the
  1532.      copyright notices on PGP and keep this documentation with it. 
  1533.      However, this may not satisfy any legal obligations you may have to
  1534.      PKP for using the RSA algorithm as mentioned above.  You may choose
  1535.      to pay PKP a licensing fee on the RSA algorithm.  
  1536.       
  1537.      PGP is not shareware, it's freeware.  Published as a community
  1538.      service.  If I sold PGP for money, then I would have to pay a license
  1539.      fee to PKP for using their RSA algorithm.  More importantly, giving
  1540.      PGP away for free will encourage far more people to use it, which
  1541.      hopefully will have a greater social impact.  This could lead to
  1542.      widespread awareness and use of the RSA public key cryptosystem,
  1543.      which will probably make more money for PKP in the long run.  
  1544.       
  1545.      All the source code for PGP is available for free under the "Copyleft" 
  1546.      General Public License from the Free Software Foundation (FSF).  A
  1547.      copy of the FSF General Public License is included in the source
  1548.      release package of PGP.
  1549.       
  1550.      Regardless of and perhaps contrary to some provisions of the FSF
  1551.      General Public License, the following terms apply:
  1552.       
  1553.      1)  Written discussions of PGP in magazines or books may include
  1554.          fragments of PGP source code and documentation, without 
  1555.          restrictions.
  1556.       
  1557.      2)  If you are able and willing to pay PKP a license fee for the RSA 
  1558.          algorithm, then I guess that sort of makes PGP not exactly free, 
  1559.          doesn't it?  If you decide to do that, then I'm asking for a $50 
  1560.          donation from each user that pays PKP a license fee.  
  1561.       
  1562.      3)  Although the FSF General Public License allows non-proprietary
  1563.          derivative products, it prohibits proprietary derivative products. 
  1564.          Despite this, I may grant you a special license if you want to 
  1565.          derive a proprietary commercial product from some of PGP's parts.  
  1566.          There may or may not be a fee depending on what kind of a deal you 
  1567.          plan to pursue with PKP.  Retaining my copyright notice and 
  1568.          attribution might suffice in some cases.  Give me a call and we'll 
  1569.          discuss it.  I'm real easy to please.
  1570.       
  1571.      Please disseminate the complete PGP release package as widely as
  1572.      possible.  Give it to all your friends.  If you have access to any
  1573.      electronic Bulletin Boards Systems, please upload the complete PGP
  1574.      executable object release package to as many BBS's as possible.  You
  1575.      may disseminate the PGP source release package too, if you've got
  1576.      it.  The PGP version 1.0 executable object release package for MSDOS
  1577.      contains the PGP executable software, documentation, sample keyrings
  1578.      including my own public key, and signatures for the software and this
  1579.  
  1580.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 32
  1581.  
  1582.  
  1583.      manual, all in one PKZIP compressed file called PGP10.ZIP.  The PGP
  1584.      source release package for MSDOS contains all the C source files in
  1585.      one PKZIP compressed file called PGP10SRC.ZIP.
  1586.       
  1587.      You may obtain free updates to PGP from BBS's or other public
  1588.      sources.  If you must have an update directly from me, send me a $50
  1589.      handling charge (made out to Philip Zimmermann).  This fee is NOT a
  1590.      charge for PGP, which you can get for free anywhere else.  This
  1591.      outrageous fee is just to get me to overcome my procrastination and
  1592.      interrupt my bread-and-butter work and prepare a release disk for you
  1593.      and maybe drive down to the post office to buy some stamps, since I
  1594.      don't have a secretary to handle these matters.  If you want much
  1595.      faster service, include a stamped self-addressed floppy disk mailer
  1596.      and a blank floppy disk.  If you want even faster service, include
  1597.      your Federal Express account number (or better yet, one of your own
  1598.      Fedex airbill forms already filled out addressed to you) and I will
  1599.      Fedex it to you overnight at your expense.  I will send you a disk
  1600.      with my latest and greatest source and executable object release
  1601.      packages of PGP.  Assuming that no one tampers with the disk before
  1602.      it reaches you, you can trust that my public key is good and that the
  1603.      software is free of viruses.  There's no guarantee that my version of
  1604.      PGP is more up-to-date than the one you have already.
  1605.       
  1606.      After all this work I have to admit I wouldn't mind getting some fan
  1607.      mail for PGP, to gauge its popularity.  Let me know where you heard
  1608.      about it and what you think and how many of your friends use it.  Bug
  1609.      reports and suggestions for enhancing PGP are welcome, too.  Perhaps
  1610.      a future PGP release will reflect your suggestions.  But please don't
  1611.      count on a reply, because this project has not been funded.  Technical
  1612.      support is cheerfully provided for an hourly fee.
  1613.       
  1614.      If anyone wants to volunteer to improve PGP, please let me know.  It
  1615.      could certainly use some more work.  Some features were deferred to
  1616.      get it out the door.  Perhaps you can help port it to some new
  1617.      machine environments, such as the Apple Macintosh or MS Windows or X
  1618.      Windows or XVT.
  1619.       
  1620.      This is the first release of PGP.  Future versions of PGP may have to
  1621.      change the data formats for messages, signatures, keys and key rings,
  1622.      in order to provide important new features.  This may cause backward
  1623.      compatibility problems with this version of PGP.  Future releases may
  1624.      provide conversion utilities to convert old keys if this is practical,
  1625.      but you may have to generate new keys and dispose of old messages
  1626.      created with the old PGP.  Such a conversion effort will probably
  1627.      only have to be done once, if at all.
  1628.       
  1629.       
  1630.      Export Controls
  1631.      ---------------
  1632.       
  1633.      The Government has made it illegal in many cases to export good
  1634.      cryptographic technology, and that may include PGP.  This is
  1635.      determined by volatile State Department policies, not fixed laws. 
  1636.      Many foreign governments impose serious penalties on anyone inside
  1637.      their country using encrypted communications.  In some countries they
  1638.      might even shoot you for that.  I will not export this software in
  1639.  
  1640.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 33
  1641.  
  1642.  
  1643.      cases when it is illegal to do so under US State Department policies,
  1644.      and I assume no responsibility for other people exporting it without
  1645.      my permission.
  1646.       
  1647.       
  1648.  
  1649.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 34
  1650.  
  1651.  
  1652.       
  1653.      Acknowledgements
  1654.      ================
  1655.       
  1656.      I'd like to thank the following people for their contributions to the
  1657.      creation of PGP.  Charlie Merritt designed the prototypic
  1658.      conventional encryption algorithm and taught me how to do decent
  1659.      multiprecision arithmetic.  Zhahai Stewart wrote some 8086 assembly
  1660.      primitives and gave many helpful suggestions on PGP file formats and
  1661.      on the conventional encryption algorithm improvements.  Allan Hoeltje
  1662.      integrated the LZHuf compression routines into PGP.  These were
  1663.      developed and placed in the public domain by Haruyasu Yoshizaki and
  1664.      Haruhiko Okumura.  The MD4 routines were developed and placed in the
  1665.      public domain by Ron Rivest.  
  1666.       
  1667.      Charlie Merritt can be reached at PO Box 317, West Fork, AR 72774.
  1668.      Zhahai Stewart can be reached at 6521 Old Stage Rd, Boulder, CO 80302.
  1669.      Allan Hoeltje can be reached at PO Box 18045, Boulder, CO 80308.
  1670.       
  1671.       
  1672.      Recommended Readings
  1673.      ====================
  1674.       
  1675.      1)  Dorothy Denning, "Cryptography and Data Security", Addison-Wesley,
  1676.          Reading, MA 1982
  1677.      2)  Dorothy Denning, "Protecting Public Keys and Signature Keys",
  1678.          IEEE Computer, Feb 1983
  1679.      3)  Philip Zimmermann, "A Proposed Standard Format for RSA 
  1680.          Cryptosystems", IEEE Computer, Sep 1986
  1681.      4)  Ronald Rivest, "The MD4 Message Digest Algorithm", MIT Laboratory
  1682.          for Computer Science, 1990
  1683.       
  1684.       
  1685.      About the Author
  1686.      ================
  1687.       
  1688.      Philip Zimmermann is a software engineer consultant with 17 years
  1689.      experience, specializing in embedded real-time systems, cryptography,
  1690.      authentication, and data communications.  Experience includes design
  1691.      and implementation of authentication systems for financial
  1692.      information networks, network data security, key management
  1693.      protocols, embedded real-time multitasking executives, operating
  1694.      systems, and local area networks.  
  1695.       
  1696.      Faster versions of RSA implementations are available from Zimmermann,
  1697.      as well as other cryptography and authentication products and custom 
  1698.      product development services.
  1699.       
  1700.      His consulting firm's address is: 
  1701.       
  1702.      Boulder Software Engineering
  1703.      3021 Eleventh Street
  1704.      Boulder, Colorado 80304  USA
  1705.      Phone 303-444-4541  (10:00am - 7:00pm Mountain Time)
  1706.      FAX 303-444-4541 ext 10
  1707.      Internet:  prz@sage.cgd.ucar.edu
  1708.  
  1709.      PGPGUIDE.DOC            Wednesday, June 5, 1991 2:28 pm             Page 35
  1710.  
  1711.  
  1712.       
  1713.